The following definitions apply throughout the specification, including in the claims:
“SATA standard” denotes the standard known as Serial ATA, Revision 1.0, adopted on Aug. 29, 2001, by the Serial ATA Working Group, for communication between a host and one or more storage devices over one or more serial links;
“SATA system” denotes a system including elements configured for communication over at least one serial link in compliance with the “SATA” standard;
“RAID” system denotes a system including at least one host (e.g., a CPU), at least two storage devices, and a controller coupled between the host and the storage devices to provide an interface between the host and the storage devices. Thus, the expression “RAID” system is used herein more broadly than in a conventional sense in which it denotes a system including at least one host, a “redundant array of inexpensive disks” (an array of inexpensive disk drives), and a controller coupled between the host and disk drives to provide an interface between the host and disk drives; and
“user” denotes a system or device configured to interface with a storage device, including by sending device access requests to the storage device, receiving data read from the storage device, and optionally also sending data to the storage device (to be written to the storage device). One example of a user is a disk drive controller.
Conventional multi-port disk drives have special logic (typically included in the port logic) that provides the functionality needed to manage the conventional access capabilities of the ports. However, until the present invention, such special logic had not been implemented to arbitrate among multiple users, coupled via serial links to a multi-port disk drive, and competing for access to the drive, without the need for communication between the users or knowledge by the users of the activities of the other users. Some conventional disk controllers are configured to communicate with each other (e.g., to accomplish failover, whereby one controller assumes responsibility for operations that had been performed by another controller when the latter controller fails). However, the inventors have recognized that it is undesirable to rely on communication among disk controllers to implement arbitration among the controllers as they compete for access to a multi-port disk drive, or to rely on communication between the drive and an unsuccessfully bidding controller after grant of a bid or during performance of a device access by the successfully bidding controller, since to do so would require each controller coupled to the drive to be compatible with all the other controllers coupled to the drive and/or would not eliminate all risk that failure of one controller could interfere with a device access operation by another controller.
The inventors have recognized that it would be advantageous to implement a RAID system (e.g., one including a multi-port storage device shared by multiple controllers) to provide arbitration capability (including selection lockout capability) at the level of a shared multi-port storage device, in a manner assuring that a faulty controller will not interfere with a device access operation in progress.